3D rasterization: a bridge between rasterization and ray casting
نویسندگان
چکیده
Ray tracing and rasterization have long been considered as two fundamentally different approaches to rendering images of 3D scenes, although they compute the same results for primary rays. Rasterization projects every triangle onto the image plane and enumerates all covered pixels in 2D, while ray tracing operates in 3D by generating rays through every pixel and then finding the closest intersection with a triangle. In this paper we introduce a new view on the two approaches: based on the Plücker ray-triangle intersection test, we define 3D triangle edge functions, resembling (homogeneous) 2D edge functions. Then both approaches become identical with respect to coverage computation for image samples (or primary rays). This generalized “3D rasterization” perspective enables us to exchange concepts between both approaches: we can avoid applying any model or view transformation by instead transforming the sample generator, and we can also eliminate the need for perspective division and render directly to non-planar viewports. While ray tracing typically uses floating point with its intrinsic numerical issues, we show that it can be implemented with the same consistency rules as 2D rasterization. With 3D rasterization the only remaining differences between the two approaches are the scene traversal and the enumeration of potentially covered samples on the image plane (binning). 3D rasterization allows us to explore the design space between traditional rasterization and ray casting in a formalized manner. We discuss performance/cost trade-offs and evaluate different implementations and compare 3D rasterization to traditional ray tracing and 2D rasterization.
منابع مشابه
3D Rasterization – Unifying Rasterization and Ray Casting
Ray tracing and rasterization have long been considered as two very different approaches to rendering images of 3D scenes that – while computing the same results for primary rays – lie at opposite ends of a spectrum. While rasterization first projects every triangle onto the image plane and enumerates all covered pixels in 2D, ray tracing operates in 3D by generating rays through every pixel an...
متن کاملA Voxel-based Rendering Pipeline for Large 3D Line Sets
We present a voxel-based rendering pipeline for large 3D line sets that employs GPU ray-casting to achieve scalable rendering including transparency and global illumination effects that cannot be achieved with GPU rasterization. Even for opaque lines we demonstrate superior rendering performance compared to GPU rasterization of lines, and when transparency is used we can interactively render la...
متن کاملHybrid Sample-based Surface Rendering
The performance of rasterization-based rendering on current GPUs strongly depends on the abilities to avoid overdraw and to prevent rendering triangles smaller than the pixel size. Otherwise, the rates at which highresolution polygon models can be displayed are affected significantly. Instead of trying to build these abilities into the rasterization-based rendering pipeline, we propose an alter...
متن کاملRecent developments in ray tracing for video games
Since the emerging of 3D video games, polygon rasterization has become the industry standard for projecting worlds onto the screen. As time progressed, graphics accelerators and other hardware was developed to accelerate the process of rendering polygons as games demanded increasingly complex scenes and lighting. And while there are good reasons to stick to conventional rasterization, a rapid i...
متن کاملGpu-aware Hybrid Terrain Rendering
We present a hybrid GPU rendering pipeline for high-resolution textured terrain fields that reduces polygon throughput limitations on the GPU. This pipeline uses rasterization and ray-casting in every frame simultaneously to determine eye ray intersections. It allows shifting workloads flexibly between the triangle setup stage and the parallel execution units, depending on the GPU capacities. W...
متن کامل